#pragma once
#include "..\..\CommLib\CommStructs.h"
#include "..\Render\Render.h"

struct tLight {

	tCharBuffer m_Name;
	D3DXVECTOR3 m_Position;
	D3DXVECTOR3 m_Diffuse;
	float m_Brightness;
	float m_DiffuseScale;
	float m_SpecularScale;
	uint m_Type;

	virtual void UpdateTransform(tMatrix4 *pTransform);
	virtual bool ApplyToShader(const Render::tShader *pShader, const uint lightIndex);
	tLight();
};

struct tDirectLight : public tLight {

	D3DXVECTOR3 m_Direction;
	
	virtual void UpdateTransform(tMatrix4 *pTransform);
	virtual bool ApplyToShader(const Render::tShader *pShader, const uint lightIndex);
	tDirectLight();
};